Skip to content

fix(discourse): replace deprecated Bitnami images with official alternatives#910

Open
MagiqueDeveloper wants to merge 4 commits into
Dokploy:canaryfrom
MagiqueDeveloper:canary
Open

fix(discourse): replace deprecated Bitnami images with official alternatives#910
MagiqueDeveloper wants to merge 4 commits into
Dokploy:canaryfrom
MagiqueDeveloper:canary

Conversation

@MagiqueDeveloper
Copy link
Copy Markdown

@MagiqueDeveloper MagiqueDeveloper commented May 26, 2026

What is this PR about?

Fixes the Discourse template which was broken due to Bitnami discontinuing their legacy images (bitnami/discourse, bitnami/postgresql, bitnami/redis, bitnamilegacy).

Changes:

  • Replaced bitnamilegacy/discourse:3.5.0 with discourse/discourse:2026.1.4 (official ESR image)
  • Replaced bitnami/postgresql:17 with pgvector/pgvector:pg16 (required for Discourse's vector extension)
  • Replaced bitnami/redis:7.4 with redis:7-alpine
  • Removed separate sidekiq container — the official image runs web + sidekiq internally via runit
  • Updated all env var names from Bitnami-specific (DISCOURSE_DATABASE_*, POSTGRESQL_*) to standard ones (DISCOURSE_DB_*, POSTGRES_*)
  • Added UNICORN_BIND_ALL: "true" to allow the proxy to reach the web process
  • Added DISCOURSE_DEVELOPER_EMAILS variable to template.toml so admin email is set at deploy time
  • Consolidated volumes from 4 down to 3

Checklist

Before submitting this PR, please make sure that:

Issues related (if applicable)

Closed: #502 - Fix was replacing with BitnamiLegacy images which may soon be deprecated. Replacing with official images ensures that Bitnami does not have control to pull the plug suddenly again.

Screenshots or Videos

Discourse Setup Wizard Disource App Logs Discourse Redis Logs Discourse DB Logs

Note: The "Tada" SVG is not showing due to it not being served on HTTPS/SSL. This is using sslip for testing. SMTP is partially required for Discourse otherwise manual admin account creation is required, and it disables a lot of features that require emails. Refer to this

Copilot AI review requested due to automatic review settings May 26, 2026 03:45
@dosubot dosubot Bot added size:XS This PR changes 0-9 lines, ignoring generated files. template New template request labels May 26, 2026
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 26, 2026

built with Refined Cloudflare Pages Action

⚡ Cloudflare Pages Deployment

Name Status Preview Last Commit
templates ✅ Ready (View Log) Visit Preview d112470

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Note

Copilot was unable to run its full agentic suite in this review.

Updates the Discourse blueprint to support configuring an admin email and switches the Docker Compose stack from Bitnami images/config to upstream-style Discourse/Postgres/Redis images.

Changes:

  • Add admin_email variable and propagate it into runtime env as DISCOURSE_ADMIN_EMAIL.
  • Replace Bitnami Postgres/Redis/Discourse images and update volume paths + env var names accordingly.
  • Remove the separate Sidekiq service and adjust container settings (ports, Redis auth, Discourse env).

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 3 comments.

File Description
blueprints/discourse/template.toml Adds admin email variable and injects it into the blueprint env; minor formatting tweak.
blueprints/discourse/docker-compose.yml Migrates the Compose stack to different images/config and updates env/volumes/ports accordingly.

Comment thread blueprints/discourse/docker-compose.yml Outdated
# DISCOURSE_NOTIFICATION_EMAIL: [email protected]
# DISCOURSE_DEVELOPER_EMAILS: [email protected]
ports:
- 3000
environment:
REDIS_PASSWORD: ${REDIS_PASSWORD}
- discourse-redis-data:/data
command: redis-server --requirepass ${REDIS_PASSWORD}
# DISCOURSE_SMTP_HOST: ${SMTP_HOST}
DISCOURSE_DEVELOPER_EMAILS: ${DISCOURSE_ADMIN_EMAIL}
UNICORN_BIND_ALL: "true"
# Required for email delivery - Discourse will not function correctly without SMTP
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: d23274d7d4

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

discourse-app:
image: docker.io/bitnamilegacy/discourse:3.5.0

image: discourse/discourse:2026.1.4
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Keep template metadata version aligned with image tag

Updating the Discourse image to discourse/discourse:2026.1.4 without a corresponding meta.json version update leaves the template catalog inconsistent (meta.json still reports 3.5.0). In this repo, version parity is required, and this mismatch can mislead users and automation that rely on metadata for displayed/expected template versions.

Useful? React with 👍 / 👎.

Comment thread blueprints/discourse/docker-compose.yml Outdated
Comment on lines +58 to +59
ports:
- 3000
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Remove direct port publishing from Dokploy blueprint

This adds a ports section to the app service, which conflicts with the repository’s Dokploy blueprint rule to avoid published ports and rely on platform routing (config.domains + internal service port). Keeping host port publishing here can unintentionally expose the container outside Dokploy’s managed ingress path and diverge from expected deployment behavior.

Useful? React with 👍 / 👎.

Copilot AI review requested due to automatic review settings May 26, 2026 04:15
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated 4 comments.

Comment thread blueprints/discourse/docker-compose.yml Outdated
# DISCOURSE_NOTIFICATION_EMAIL: [email protected]
# DISCOURSE_DEVELOPER_EMAILS: [email protected]
ports:
- 3000
environment:
REDIS_PASSWORD: ${REDIS_PASSWORD}
- discourse-redis-data:/data
command: redis-server --requirepass ${REDIS_PASSWORD}
Comment thread meta.json
"id": "discourse",
"name": "Discourse",
"version": "3.5.0",
"version": "2026.1.4",
UNICORN_BIND_ALL: "true"
# Required for production
# DISCOURSE_FORCE_HTTPS: "true"
# Required for email delivery - Discourse will not function correctly without SMTP
@MagiqueDeveloper
Copy link
Copy Markdown
Author

Had fixed the rendering issue in another commit. The reason was an issue with port 3000, but Discourse also hosts the production version on port 80. Instead of routing from port 3000 we switched to port 80 which had resolved all issues and now working as intended.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XS This PR changes 0-9 lines, ignoring generated files. template New template request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

manifest unknown: manifest unknown discouese

2 participants